package com.fgi.springframework.beans.factory.support;

import com.fgi.springframework.core.io.DefaultResourceLoader;
import com.fgi.springframework.core.io.ResourceLoader;

/**
 * @author HanXu
 * @date 2022/11/24
 * TODO 抽象的 bean定义读取器，实现BeanDefinitionReader所得的关于获取bean定义注册器和资源加载器的方法
 * TODO 其他的方法交由其继承子类实现（XmlBeanDefinitionReader是其中之一）
 **/
public abstract class AbstractBeanDefinitionReader implements BeanDefinitionReader {

    private final BeanDefinitionRegistry registry;

    private ResourceLoader resourceLoader;


    protected AbstractBeanDefinitionReader(BeanDefinitionRegistry registry) {
        this(registry, new DefaultResourceLoader());
    }

    public AbstractBeanDefinitionReader(BeanDefinitionRegistry registry, ResourceLoader resourceLoader) {
        this.registry = registry;
        this.resourceLoader = resourceLoader;
    }

    @Override
    public BeanDefinitionRegistry getRegistry() {
        return registry;
    }

    @Override
    public ResourceLoader getResourceLoader() {
        // TODO 获取的是 构造函数中传入的，或者是 new 的
        return resourceLoader;
    }

}
